package com.mida.dms.knw.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.mida.dms.knw.LongArray2StringSerialize;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <h1>本体应用服务接口VO,含本体规则信息</h1>
 * <p>
 *
 * @author jian.li on 2021/2/26 17:52
 */
@Data
@ApiModel(description = "本体应用服务接口VO")
public class KnwNoumenonVo implements Serializable {

    @ApiModelProperty(value = "本体soid",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long noumenonSoid;

    @ApiModelProperty(value = "本体概念soid",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long conceptualSoid;

    @ApiModelProperty(value = "本体权威来源",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long mdmSoid;

    @ApiModelProperty(value = "本体名称",required = false)
    private String noumenonName;

    @ApiModelProperty(value = "本体显示名称",required = false)
    private String noumenonShowName;

    @ApiModelProperty(value = "本体拼音码",required = false)
    private String pyCode;

    @ApiModelProperty(value = "本体五笔码",required = false)
    private String wbCode;

    @ApiModelProperty(value = "本体描述",required = false)
    private String noumenonDesc;

    @ApiModelProperty(value = "本体一级分类代码",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long noumenonType;

    @ApiModelProperty(value = "本体二级分类代码",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long noumenonSubType;

    @ApiModelProperty(value = "本体三级分类代码",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long noumenonThirdType;

    @ApiModelProperty(value = "本体版本",required = false)
    private Double version;

    @ApiModelProperty(value = "本体创建日期时间",required = false)
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date createDate;

    @ApiModelProperty(value = "本体最后修改日期时间",required = false)
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date updateDate;

    @ApiModelProperty(value = "本体最后修改人",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long updateUser;

    @ApiModelProperty(value = "本体状态",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long status;

    @ApiModelProperty(value = "本体删除标志位",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long isDelete;

    @ApiModelProperty(value = "定义空间soid")
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long defineSpaceSoid;

    @ApiModelProperty(value = "授权空间soid列表",required = false)
    @JsonSerialize(using = LongArray2StringSerialize.class)
    private List<Long> useSpaceList;

    @ApiModelProperty(value = "本体规则soid",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long noumenonRuleSoid;

    @ApiModelProperty(value = "本体规则名称",required = false)
    private String noumenonRuleName;

    @ApiModelProperty(value = "本体规则五笔码",required = false)
    private String ruleWbCode;

    @ApiModelProperty(value = "本体规则拼音码",required = false)
    private String rulePyCode;

    @ApiModelProperty(value = "本体规则描述",required = false)
    private String noumenonRuleDesc;

    @ApiModelProperty(value = "本体规则创建日期时间",required = false)
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date ruleCreateDate;

    @ApiModelProperty(value = "本体规则最后修改日期时间",required = false)
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date ruleUpdateDate;

    @ApiModelProperty(value = "本体规则删除标志位",required = false)
    private Long ruleIsDelete;

    @ApiModelProperty(value = "本体规则编码体系soid",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long ruleDetailCodingSystemSoid;

    @ApiModelProperty(value = "本体规则状态",required = false)
    @JsonSerialize(using= com.fasterxml.jackson.databind.ser.std.ToStringSerializer.class)
    private Long ruleStatus;

    @ApiModelProperty(value = "本体标签",required = false)
    private String lable;


    private static final long serialVersionUID = 1L;
}
